<?php

/**
 * default actions.
 *
 * @package    sf.shonanbbs.com
 * @subpackage default
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 2692 2006-11-15 21:03:55Z fabien $
 */
class defaultActions extends sfActions
{
    /**
     * Executes index action
     *
     */
    public function executeIndex()
    {
        //$this->forward('default', 'module');

        //Critriaを使ってDB情報の取得
        $c = new Criteria();
        $c->add(MemberPeer::ID,3,Criteria::GREATER_EQUAL);
        $number = MemberPeer::doSelectOne($c);

        //echo $number->getMailaddress();

        //バリデーションに引っ掛かったら取得
        $this->content = $this->getRequestParameter("content");
        $this->nickname = $this->getRequestParameter("nickname");

        ///////↓Criteriaを使わず、性的に取得する///////
        $member = MemberPeer::retrieveByPk(1);
        //echo $number->getMailaddress();
        ////////////////////////////////////////////////

        //テンプレートにデータをアサインする
        $this->member = $number;

        //外部キー設定を行うと、テーブル名の関数も使える
        $comment = CommentPeer::retrieveByPk(6);
        //print_r($comment->getReplys());

        //echo "<br><br>";

        $reply = ReplyPeer::retrieveByPk(7);
        //print_r($reply);exit;

        //実際に掲示板で使用する情報
        $this->categorys = sfConfig::get("sf_categorys");//配列データはconfig/settings.ymlから

        //検索内容を受け取る
        $this->search_arr = array(

        //pager機能に持たせるクエリパラメータ

        //実装するページのモジュールとアクション
        "module" => "default",
        "action" => "index",

        //昇順降順機能
        "order_by" => $this->getRequestParameter("order_by", "desc"),

        //検索情報
        "word" => $this->getRequestParameter("word"),
        "category" => $this->getRequestParameter("category"),
        "date_start" => $this->getRequestParameter("date_start"),
        "date_end" => $this->getRequestParameter("date_end"),
        "photo" => $this->getRequestParameter("photo"),
        "url" => $this->getRequestParameter("url"),
        );
        //print_r($this->search_arr);

        //テンプレートで使うために「$this」でアサイン
        $page = $this->getRequestParameter("page");
        if($page <= 1){
            $page = 1;
        }
        $this->pager = CommentPeer::getBbsArticles($this->search_arr, $page);
        $this->comments = $this->pager->getResults();

        if($this->search_arr["order_by"] == "desc"){
            $this->search_arr["order_by"] = "asc";
        }else{
            $this->search_arr["order_by"] = "desc";
        }



        //URL直打ち対処
        $this->bbs_submit_check = rand();
        $this->setflash("bbs_submit_check",$this->bbs_submit_check);

        return sfView::SUCCESS;
    }

    public function executeSubmit()
    {
        echo $this->getRequestParameter("bbs_submit_check")."<br>";
        echo $this->getflash("bbs_submit_check");
        //URL直打ち対処
        if($this->getRequestParameter("bbs_submit_check") !=
           $this->getflash("bbs_submit_check") ||
           $this->getRequestParameter("bbs_submit_check") == "")
        {
            $this->redirect("/");
        }
        $this->setflash("bbs_submit_check","");

        //↓GET,POSTで渡ってきたデータを受け取るための記述
        $content = $this->getRequestParameter("content");
        $nickname = $this->getRequestParameter("nickname");
        $category_id = $this->getRequestParameter("category_id");
        $url = $this->getRequestParameter("url");

        //ファイルを受け取る場合
        $photo = $this->getRequest()->getFile("photo");

        //↓新規データをcommentテーブルに入れるための記述
        $comment = new Comment;//←インスタンス化

        //↓新規データをセットしていくための記述(カラム名でメソッドが作られている)
        $comment->setContent($content);
        $comment->setNickname($nickname);
        $comment->setCategoryId($category_id);
        $comment->setUrl($url);

        //「created_at」という名前のカラムがあった場合、
        //自動で現在時刻でデータを作成してくれる(symfonyの特徴)


        //↓セットしたデータをデータベースに反映させる
        $comment->save();

        if($photo["tmp_name"]){
            $filename = $comment->getId(). ".jpg";
            $this->getRequest()->moveFile("photo", sfConfig::get('sf_web_dir'). "/images/comment/". $filename);
            $comment->setPhoto($filename);
            $comment->save();
        }
        return sfView::SUCCESS;
    }


    public function executeError404()
    {
        $this->redirect("/");
    }


    public function handleErrorSubmit()
    {
        $this->request->setParameter("content",$this->getRequestParameter("content"));
        $this->request->setParameter("nickname",$this->getRequestParameter("nickname"));

        $this->forward("default","index");
    }



}










